class Exception {
    private _message: string;
    private _innerException: any;

    constructor (message?: string, innerException?: any) {
        this._message = message;
        this._innerException = innerException;
    }

    public get Message() { return this._message; }

    public get InnerException() { return this._innerException; }
}

class TroopConstraintViolationException extends Exception {

    constructor ();
    constructor (message?: string);
    constructor (message?: string, innerException?: any) {
        super(message, innerException);
    }
}